import { IPSModelObject } from '../ipsmodel-object';
import { IPSDEField } from '../dataentity/defield/ipsdefield';
import { IPSEAIDEObject } from './ipseaideobject';

/**
 *
 * @export
 * @interface IPSEAIDEField
 */
export interface IPSEAIDEField extends IPSEAIDEObject, IPSModelObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 映射目标类型
   * @description 值模式 [应用集成实体属性映射类型] {ATTRIBUTE：属性、 ELEMENT：简单元素 }
   * @type {( string | 'ATTRIBUTE' | 'ELEMENT')}
   */
  dstType: string | 'ATTRIBUTE' | 'ELEMENT';

  /**
   * 实体属性映射标记
   * @type {string}
   */
  fieldTag: string;

  /**
   * 实体属性映射标记2
   * @type {string}
   */
  fieldTag2: string;

  /**
   * 实体属性
   *
   * @type {IPSDEField}
   */
  getPSDEField(): IPSDEField | null;

  /**
   * 实体属性
   *
   * @type {IPSDEField}
   */
  get psDEField(): IPSDEField | null;

  /**
   * 实体属性（必须存在）
   *
   * @type {IPSDEField}
   */
  getPSDEFieldMust(): IPSDEField;
}
